package com.engine.salary.entity.siarchives.po;

import com.engine.hrmelog.annotation.ElogTransform;
import com.engine.salary.annotation.Auth;
import com.engine.salary.enums.auth.AuthCheckTypeEnum;
import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum;
import com.engine.salary.enums.siaccount.EmployeeStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Collection;
import java.util.Date;
import java.util.Set;

/**
 * @Author: sy
 * @Description: 社保福利档案基础信息
 * @Date: 2022/10/8
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_insurance_base_info
@ElogTransform(name = "福利档案主表")
@Auth(page = "siArchive", checkType = AuthCheckTypeEnum.TAX_EMP, employeeIdField = "employeeId", taxAgentIdField = "paymentOrganization")
public class InsuranceArchivesBaseInfoPO {
    /**
     * 主键id
     */
    @ElogTransform(name = "主键id")
    private Long id;

    /**
     * 员工id
     */
    @ElogTransform(name = "员工id")
    private Long employeeId;

    /**
     * 个税扣缴义务人id
     */
    @ElogTransform(name = "个税扣缴义务人id")
    private Long paymentOrganization;

    /**
     * 社保档案id
     */
    @ElogTransform(name = "社保档案id")
    private Long socialArchivesId;

    /**
     * 公积金档案id
     */
    @ElogTransform(name = "公积金档案id")
    private Long fundArchivesId;

    /**
     * 其他福利档案id
     */
    @ElogTransform(name = "其他福利档案id")
    private Long otherArchivesId;

    /**
     * 租户key
     */
    @ElogTransform(name = "租户key")
    private String tenantKey;

    /**
     * 创建人id
     */
    @ElogTransform(name = "创建人id")
    private Long creator;

    /**
     * 是否删除
     */
    @ElogTransform(name = "是否删除")
    private Integer deleteType;

    /**
     * 创建时间
     */
    @ElogTransform(name = "创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @ElogTransform(name = "更新时间")
    private Date updateTime;

    /**
     * 福利执行状态
     * @see EmployeeStatusEnum
     */
    @ElogTransform(name = "福利执行状态")
    private String runStatus;

    /**
     * 人员类型,0或null组织架构,1非系统人员
     *
     * @see DataCollectionEmployeeTypeEnum
     */
    @ElogTransform(name = "人员类型")
    private Integer employeeType;

    //---------条件-------
    private Collection<Long> ids;
    private Collection<Long> employeeIds;


    private Set<String> opts;
}
